home *** CD-ROM | disk | FTP | other *** search
- G8BPQ Switch Driver Programs.
-
-
- This file documents the driver programs provided with the switch. They fall
- into two categories, programs to interface to external hardware not supported
- directly by the switch, and programs to interface application software to
- the switch.
-
- Hardware Drivers.
-
- These programs use the EXTERNAL port interface (see EXTERNAL.DOC). This
- interface was provided primarily to allow users to write their own hardware
- drivers, but I have started to use it to support hardware which is likely to
- be only of minority interest, so dont justify occupying memory unless required.
- So far there is only one driver in this category.
-
- ODIDRV
-
- This program allows switches to be linked via Ethernet. The software runs
- over the Novell ODI interface, so should work with any Ethernet card for
- which an ODI driver is available.
-
-
- Application Software Drivers.
-
- From Version 4.00, the application interface to the switch has been changed.
- The new interface is called BPQ Host Mode (see BPQHOST.DOC for full details).
- Some software is available for the new interface (eg F6FBB BBS, TERM4), but,
- in order to support older software, and to provide new facilities, a number
- of drivers have been written. These are TSR's, which are loaded after BPQCODE.
-
- The drivers supplied with 4.06 are detailed below:
-
- BPQHTNC2
-
- This provides the COMBIOS/TNC2 emulation, as used by W0RLI and G1NNA
- BBS's (amongst others), and various Terminal Programs (YAPPB, PAC2 etc).
-
-
- BPQHKISS
-
- This provides the COMBIOS/KISS emulation. This was used for the NET
- TCP/IP interface, and for programs like STATS and TLMDC (the Satellite
- telemetry decode program).
-
-
- DEDHOST
-
- This provides an emulation of the WA8DED Host Mode driver used with DRSI
- cards (TNCTSR). It is used for PacketCluster and AA4RE BBS.
-
-
- NODEDRV4
-
- This is used to interface the NOS TCP/IP package to the switch. It conforms
- to the PacketDriver interface spec.
-
-
-
- Full details of the above drivers are given below:
-
-
-
- ODIDRV - Ethernet Interface
-
-
- This driver allows two or more switches to be linked via Ethernet. The driver
- uses the ODI system to interface to the ethernet card. A working knowledge
- of ODI is assumed in this document.
-
- The driver has one parameter, the software interrupt to be used by the
- switch to communicate with the driver. This must match the INTLEVEL param
- in BPQCFG.TXT. The number is specified in decimal in both places:
-
- ODIDRV 125
-
- By default, the system uses a multicast address of 01:42:50:51:0:0, and
- I recommend the use of ETHERNET_II frame type, and PID=08FF. These can
- all be overridden by parameters in NET.CFG
-
- NET.CFG Params:
-
- LINK SUPPORT
-
- MAX STACKS 4
- MAX BOARDS 4
-
- LINK DRIVER NE1000 ; or other MLID to suit your card
-
- INT 2 ;
- PORT 300 ; to suit your card
-
- FRAME ETHERNET_802.2 ; may not need all these
- FRAME ETHERNET_II
- FRAME ETHERNET_802.3
- FRAME ETHERNET_SNAP
-
- PROTOCOL IPX 0 ETHERNET_802.3 ; if you want to use Netware as well
-
- PROTOCOL BPQ 8FF ETHERNET_II ; required for BPQ - can change PID
-
- BPQPARAMS ; optional - only needed if you want
- ; to override the default target addr
-
- ETH_ADDR 00:80:C7:4A:97:03 ; Target address. See below
-
-
-
- By default, the system uses multicasts. This simplifies configuration, and
- allows several nodes to communicate. If you only have two nodes you can
- improve efficiency marginally by specifying the hardware address of the
- other ethernet card. You can also specify the broadcast address
- (ff:ff:ff:ff:ff:ff). This may be necessary if your MLID doesnt support
- multicast.
-
- I havnt found any problem using a PID of 8FF, but you can change this if
- necessary.
-
-
-
-
- TNC2 Emulation routine - BPQHTNC2
-
-
- This program provides the application interface for TNC2 applications
- on switch version 4.05 and above. BPQHTNC2 should be loaded after the switch.
- If only a single program uses the TNC2 interface, (eg NNA), it may be loaded
- in the programs's Desqview window, but if it is used by more than
- one program (eg RLI, or utilites such as PAC2, BPQTERM, MH), it should be
- laoded before Desqview. If in doubt, load it before DV.
-
- The program may be called in two ways. If called without any paramters, it
- will use the TNCPORT information from BPQCFG.BIN, and use BPQHOST ports 33
- upwards. This should be adequate for the great majority of applications.
- Alternatively it is possible to supply 3 parameters, the number of TNC2 ports
- required, the first COMBIOS port required, and the first BPQHost port to use.
- This will only be necessary if you want to use more than 16 TNCPORTS, or if
- you are already using BPQHOST ports above 33.
-
- For example,
-
- To use the ports defined in BPQCFG.TXT (ie to be the same as earlier versions)
-
- BPQHTNC2
-
- To create COM1-COM18, enter:
-
- BPQHTNC2 18 1 1
-
- For COM2-COM5
-
- BPQHTNC2 4 2 1
-
- A single copy of BPQHTNC2 can only support a contiguous set of COM ports. If
- you want set up say COM1-COM4, then COM8-COM9, you can run more than one
- copy:
-
- BPQHTNC2 4 1 1
- BPQHTNC2 2 8 5 (Four BPQHOST ports have been used by first)
-
- There is some overhead in running two copies, so in general it would be
- better to rearrange the applications to use a contiguous set of COM ports.
-
-
- The last parameter will normally be 1. Only if you are using BPQ Host ports
- for other software (eg FBB, TERM4, DEDHOST), or are running more than one copy
- of BPQHTNC2, will it need changing.
-
-
- Please note that BPQHTNC2 reads BPQCFG.BIN to find what interrupt to use
- to talk to the switch, and to get the default value for PACLEN. BPQCFG.BIN
- must therefore be in the current directory when BPQHTNC2 is loaded.
-
- The following commands are supported by BPQHTNC2:
-
- CONOK ON/OFF - Indicates the port is available for use. By default, it
- will be for the BBS application. See APPL comand.
-
-
- APPL - Bit significant field, to indicate which application the
- port is supporting. The first three are reserved for BBS,
- connects to the SYSOP (HOST support), and remote SYSOP
- facilities. The other 5 are available for you to define your
- own application servers (eg DATABASE, UNIX gateway).
- Default is 01, the BBS.
-
- To allow users to connect to you (using the C command
- from the switch without a param), set APPL=02, and CONOK ON
-
-
- BBSMON ON/OFF - Reduces the monitor output to calls only (enough to maintain
- the JA list). Place in the MBL config file startup section.
-
- MTX ON/OFF - Monitors transmitted frames - mainly used for debugging
-
- MONITOR ON/OFF - As in normal TNC
- MALL ON/OFF
- MCOM ON/OFF
- MCON ON/OFF Note that to monitor whilst connected to the Node, you
- need MCON ON
-
- MMASK - Selects which (radio) ports will be monitored. A bit
- significant field - setting bit 0 allows monitoring of
- the first port, bit 1 the second, and so on. Default is
- hex FF, monitoring all radio ports. Setting it to zero
- will suppress all monitoring.
-
- The monitor code will decode and display the network headers from messages
- between nodes. This enables you to see what routes are being used between
- nodes, as well as removing a lot of garbage from the monitor display!
-
-
- NOMODE ON/OFF The next 2 are accepted, but are not fully implemented. In
- NEWMODE ON/OFF general BBS connects assume NOMODE on, others NOMODE off.
-
- CONNECT
-
- To connect to the node, use the command NODE (or K). This is equivalent to
- connecting to a normal node. There is a (roughly) equivalent command
- C SWITCH, which returns the string *** CONNECTED to SWITCH, and is used
- in MBL forward files, as the MBL software is expecting the first connect
- to be at Level 2. A Connect command without a parameter returns the
- current state, again mainly for use by MBL software. A connect with any other
- parameter connects to the Node, then passes the command to the Node's command
- processor, thus allowing you to enter a normal Connect from either TNC or NODE
- command level.
-
- CONV
- TRANS
- UNPROTO CALL [VIA CALL ...]
- BTEXT
-
- The CONV and TRANS command enter the appropriate state, and if not connected
- to the Node, allow you to send UI frames. This is used for the MBL 'Mail for
- xxxx' broadcasts, and can be used for CQ's , etc. Beaconing is not supported,
- but the BTEXT text is saved, and may be send instead of the predefined ID
- message at intervals. This is primarily for RLI 'MAIL' beacons.
-
-
- Note that K is an abbreviation for NODE, not CONV, as in a normal TNC, as
- normally you want to switch easily between TNC command and Node command modes.
-
- SENDPAC
- CPACTIME
- CR - As normal TNC.
-
- FLOW ON/OFF - Similar to normal TNC, but a bit simpler. in particular
- echoing is suppressed, so if you need to use FLOW ON, I
- suggest you set ECHO OFF
-
-
-
-
-
-
- Background information on INT14 Drivers.
-
-
- Both BPQHTNC2 and BPQHKISS emulate the COMBIOS/MBBIOS interface used by
- WA7MBL, AA4RE and others.
-
- The following contains information extracted from AA4RE's MBBIOS
- Documentation. It has been modified to conform to my COMBIOS
- emulation.
-
- MBBIOS supports the standard INT 14 calls plus the extended ones as
- defined by Jeff Jacobsen, WA7MBL for his BBS program. These are
- explained below. AH=0 to AH=3 are identical to the IBM BIOS definition.
-
- DX must contain the port number, which start at zero, so for COM1 set
- DX=0, COM2 set DX=1, etc.
-
-
- AH = 0 Initialize
- ---------------------
-
- This is provided for compatibility only. It has no effect except to
- return the current (virtual) LSR in AH, bit zero of which is set if
- any characters remain in the rx buffer, and virtual MSR in AL.
-
-
- The MSR bits supported are DCD=Connected
- CTS=Not busy
-
- An attempt is also made to maintain delta bits
-
- BIT 7 - Receive Line Signal Detect (DCD)
- 6 - Ring Indicator (Not supported)
- 5 - Data Set Ready (Always on)
- 4 - Clear To Send
-
- 3 - Delta RLSD ( ie state has changed since last
- access)
- 2 - Not Supported (Trailing Edge Ring Detect)
- 1 - Not Supported (Delta DSR)
- 0 - Delta CTS
-
-
- AH = 1 Send Character
- -------------------------
-
- AL contains the character to send. Return values are the same as above.
-
-
- AH = 2 Receive Character
- ----------------------------
-
- On return, AL contains the character received. AH contains the
- virtual LSR. Again, AH bit 0 indicates if there is additional characters
- in the buffer. This routine does NOT timeout while waiting for a character
- but will hang indefinitely waiting for a character to appear.
-
- AH = 3 Return Status
- ------------------------
-
- Return values are the same as returned by the Initialize routine.
-
- AH = 4 Inquiry
- ------------------
-
- Returns AX and BX set to 0AA55H. This call is used to see if the
- particular port is defined in TNCPORTLIST. Note that COMBIOS/MBBIOS
- set AX, but not BX
-
-
- AH = 5 Drop RTS
- -------------------
-
- This drops (virtual) DTR and RTS. Will stop higher level code sending
- any more data into the receive buffer. No return value.
-
- AH = 6 Raise RTS
- --------------------
-
- Raise DTR and RTS. No return value.
-
- AH = 7 Send Break
- ---------------------
-
- Generates a "Break". Returns the virtual TNC to Command mode from Converse
- or Transparent mode. No return value.
-
- AH = 8 Non-destructive Read
- -------------------------------
-
- Returns the next character in the buffer in AL without removing it from
- the buffer. AH value defined as in AH=2 so you can use the Data Ready
- bit to check to see if you really did get a character.
-
- AH = 9 Set/Get options
- --------------------------
-
- Not implemented.
-
-
-
- AH = A Write buffer
- -----------------------
-
- Sends CX characters starting at DI:ES. Upon return, DI will be updated
- and CX will contain the unsent character count. Unsent characters could
- result from either BUFFER FULL or hardware handshake is OFF. AX will
- be set as in AH=3 (Status) above.
-
- AH = B Read buffer
- ------------------
-
- Receives up to CX characters starting at DI:ES. Upon return, CX set to
- actual count read and DI is updated. If the buffer is empty, return is
- immediate with CX = 0. The function will return a 'logical' line, up
- to a CR in normal mode, or 17H in Host Mode. On return, AL contains the MSR
- and AH has the virtual LSR. Again, AH bit 0 indicates if there are additional
- characters in the buffer.
-
-
-
- AH = 1F - G8BPQ NODE-SPECIFIC COMBIOS EXTENTIONS
- ------------------------------------------------
-
- AL = 0 - Return Version and Node DS
-
- Returns: AX=Node data segment
- DH=Major Version
- DL=Minor Version - ie for version 3.50, DH=3, DL=50
-
-
- AL = 1 - Return ES:SI pointing to connected call (in AX25 firm), or
- SI=0 if not connected. If connected, returns session type
- in AH, and port number (if L2 session) in AL. Session
- type is a bit significant field defined as follows:
-
- ;
- ; CIRCUITTYPE EQUATES
- ;
- L2LINK EQU 1
- SESSION EQU 10B
- UPLINK EQU 100B
- DOWNLINK EQU 1000B
- HOST EQU 10000B
-
-
- AL = 2 Return (in AH) number of unacked packets on connection.
- Some versions (pre-4.05f) incorrectly returned the value
- in AL instead of AH. To maintain compatibility with software
- written to allow for this, the value is now returned in AL
- as well as AH.
-
- AL = 3 (Versions 4.05f and later)
- Set PACLEN to the value recommended by the node. This will
- initially be derived from the type of connect (ie L2 or L4),
- and the port used (if L2). Eventually it will be varied to
- optimise throughput, based on link performance.
-
- AL = 10H Disconnect user form virtual TNC, and return user to Node
-
-
- The segment registers are saved, (unless retuning a value), but other
- registers may be destroyed.
-
-
-
-
-
-
- WA8DED Host Mode Interface for G8BPQ Switch.
-
-
-
- A facility has been developed to allow applications which normaly operate
- in DED Host Mode, using a DRSI card and the DRSI support routine TNCTSR,
- to be used with my switch code. An external interface routine DEDHOST.COM
- is used to emulate the DRSI support routine TNCTSR. DEDHOST must be run after
- BPQCODE. If running with Desqview, DEDHOST should be run in the same window
- as the application. Version 4.01 (or higher) of BPQCODE is required. Note that
- my code emulates a single DSRI port - multiple comms links may be connected to
- the switch, but as far as the application software is concerned, there is a
- single (virtual) link to the switch, capable of supporting up to 32 sessions.
-
- DEDHOST.COM requires 5 parameters, all are decimal numbers. A 6th is optional
- - if present, it is a single character. Parameters are:
-
- Number of Streams.
-
- This defines the maximum number of simultaneous users. The maximum is 32.
-
- Start Stream.
-
- The first stream number to use. The switch supports 64 streams. You must
- ensure that each application running with the switch uses a different range
- of streams.
-
-
- Application.
-
- The number allocated to this application in the APPLICATIONS param of
- BPQCFG.TXT. Will normally be 1 if running a BBS or similar system.
-
- Buffer Space.
-
- The space to be allocated for buffering messages. You can specify up to 60
- (Kilobytes). The program will allocate a minimum of 8k even if you specify
- less. The space needed will depend on your traffic, and the software you are
- using. I suggest you allocate as much as you can spare. If the application
- then runs short of memory, you will have to experiment to find the optimum
- value for your installation.
-
- Interrupt Number.
-
- The Interrupt used by the application to communicate with DEDHOST. Will be
- 255, unless you need to use that for some other software.
-
-
- Autotimer Flag.
-
- Normally the driver is configured to request the switch to send a message
- after 11 minutes without activity on each stream. This is so that
- PacketCluster users may remain connected during perions of low activity. If
- you dont want this facility, or are not using Packetcluster, set parameter to
- 'N'. If you omit the parameter, or enter any other value, it will be enabled.
-
-
- A typical command line would be DEDHOST 32 1 1 60 255 Y
-
- Please note that DEDHOST reads BPQCFG.BIN to find what interrupt to use
- to talk to the switch. BPQCFG.BIN must therefore be in the current directory
- when DEDHOST is loaded.
-
-
-
-
-
-
-
- NOS/BPQ Link - NODEDRV4.COM
-
-
- The 'Packet Driver' I wrote to allow NOS to communicate with the switch
- has been modified to use the BPQ Host mode interface. One copy of the
- packet driver is needed for each radio port to be used by NOS, plus one
- for the loopback port if you want NOS to be able to talk to the switch.
- I dont have a lot of experience of using NOS, but I suggest that if you
- are using TCP/IP over NETROM that you use the lookback port, and let the
- switch handle all the radio links. Only if you are using IP in datagram
- or ax.25 virtual circuit mode will you need to give NOS direct access to
- the radio ports.
-
- Please note that you need at least version 4.03 of BPQCODE.EXE
-
- The following is an extract from my system. You will need to tailor
- it to your own requirements.
-
-
- If using Desqview, NODEDRV4 must be loaded in the same window as NOS -
- if you put it under desqview the system will probably crash. It takes
- three parameters, the software interrupt number used by NOS to communicate
- with it (in the range 60-7f hex), the BPQ Host port to use to talk to the
- switch (1 - 63), and the number of the radio port to be accessed.
-
-
- Please note that NODEDRV4 reads BPQCFG.BIN to find what interrupt to use
- to talk to the switch. BPQCFG.BIN must therefore be in the current directory
- when NODEDRV4 is loaded.
-
-
- STARTNOS.BAT
-
-
- nodedrv4 0x61 33 1 I am using BPQHost ports 33-35, as I use
- nodedrv4 0x62 34 2 the first 32 for a PacketCluster Node.
- nodedrv4 0x63 35 3 I have given NOS access to 2 radio ports,
- nos and a loopback port to the switch.
-
-
-
- This is the 'attach' bit of AUTOEXEC.NET. I can't see where the parameter
- following the interface name is used, but the code suggests it is the
- maximum length of the transmit queue. The next param is the MTU.
-
-
- #
- attach packet 61 ax1 5 256 Radio Port 1
- attach packet 62 ax2 5 256 Radio Port 2
- attach packet 63 node 5 236 Loopback link to the switch
- #
-
-
- This is a new facility, and there is very little local IP activity for
- me to try it with. Any feedback would be most welcome, both on problems
- and suggestions on how best to set up the system.
-
-